home *** CD-ROM | disk | FTP | other *** search
Wrap
SSSSSSSSPPPPRRRR((((3333SSSS)))) SSSSSSSSPPPPRRRR((((3333SSSS)))) NNNNAAAAMMMMEEEE SSSSSSSSPPPPRRRR, DDDDSSSSPPPPRRRR, CCCCSSSSPPPPRRRR, ZZZZSSSSPPPPRRRR - Performs symmetric rank 1 update of a real or complex symmetric packed matrix SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS Single precision Fortran: CCCCAAAALLLLLLLL SSSSSSSSPPPPRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a_p)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssssssspppprrrr ((((cccchhhhaaaarrrr _u_p_l_o,,,, ffffllllooooaaaatttt *_n,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,, iiiinnnntttt _x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt *_a_p))));;;; Double precision Fortran: CCCCAAAALLLLLLLL DDDDSSSSPPPPRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a_p)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd sssssssspppprrrr ((((cccchhhhaaaarrrr _u_p_l_o,,,, ddddoooouuuubbbblllleeee *_n,,,, ddddoooouuuubbbblllleeee _a_l_p_h_a,,,, iiiinnnntttt _x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_a_p))));;;; Single precision complex Fortran: CCCCAAAALLLLLLLL CCCCSSSSPPPPRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a_p)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccsssspppprrrr ((((cccchhhhaaaarrrr _u_p_l_o,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_n,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, iiiinnnntttt _x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a_p))));;;; C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccsssspppprrrr ((((cccchhhhaaaarrrr _u_p_l_o,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_n,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_l_p_h_a,,,, iiiinnnntttt _x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_p))));;;; Double precision complex Fortran: CCCCAAAALLLLLLLL ZZZZSSSSPPPPRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a_p)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzsssspppprrrr ((((cccchhhhaaaarrrr _u_p_l_o,,,, iiiinnnntttt _n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a_p))));;;; PPPPaaaaggggeeee 1111 SSSSSSSSPPPPRRRR((((3333SSSS)))) SSSSSSSSPPPPRRRR((((3333SSSS)))) C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzsssspppprrrr ((((cccchhhhaaaarrrr _u_p_l_o,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_n,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a_l_p_h_a,,,, iiiinnnntttt _x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a_p))));;;; IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN These routines are part of the SCSL Scientific Library and can be loaded using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option. The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-processor version of the library. When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header file should be included. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These routines perform the following symmetric rank 1 operation: _A <- _a_l_p_h_a _x_x_T + _A where _x_T is the transpose of _x, _a_l_p_h_a is a real or complex scalar, _x is an _n-element vector, and _A is an _n-by-_n symmetric packed matrix. See the NOTES section of this man page for information about the interpretation of the data types described in the following arguments. These routines have the following arguments: _u_p_l_o Character. (input) Specifies whether the upper or lower triangular part of matrix _A is packed into the array argument _a_p, as follows: _u_p_l_o= 'U' or 'u': the upper triangular part of _A is being supplied in the argument _a_p. _u_p_l_o= 'L' or 'l': the lower triangular part of _A is being supplied in the argument _a_p. For C/C++, a pointer to this character is passed. _n Integer. (input) Specifies the order of matrix _A. _n >= 0. PPPPaaaaggggeeee 2222 SSSSSSSSPPPPRRRR((((3333SSSS)))) SSSSSSSSPPPPRRRR((((3333SSSS)))) _a_l_p_h_a Scalar alpha. (input) SSSSSSSSPPPPRRRR: Single precision. DDDDSSSSPPPPRRRR: Double precision. CCCCSSSSPPPPRRRR: Single precision complex. ZZZZSSSSPPPPRRRR: Double precision complex. For C/C++, a pointer to this scalar is passed when alpha is complex; otherwise, alpha is passed by value. _x Array of dimension 1+(_n-1) * |_i_n_c_x|. (input) SSSSSSSSPPPPRRRR: Single precision array. DDDDSSSSPPPPRRRR: Double precision array. CCCCSSSSPPPPRRRR: Single precision complex array. ZZZZSSSSPPPPRRRR: Double precision complex array. Contains vector _x. _i_n_c_x Integer. (input) Specifies the increment for the elements of _x. _i_n_c_x must not be 0. _a_p Array of dimension (_n(_n+1))/2 . (input and output) SSSSSSSSPPPPRRRR: Single precision array. DDDDSSSSPPPPRRRR: Double precision array. CCCCSSSSPPPPRRRR: Single precision complex array. ZZZZSSSSPPPPRRRR: Double precision complex array. Before entry with _u_p_l_o = 'U' or 'u', array _a_p must contain the upper triangular part of the symmetric matrix packed sequentially, column-by-column, so that _a_p(1) contains _A(1,1), _a_p(2) contains _A(1,2), _a_p(3) contains _A(2,2), and so on. On exit, the upper triangular part of the updated matrix overwrites array _a_p. Before entry with _u_p_l_o = 'L' or 'l', array _a_p must contain the lower triangular part of the symmetric matrix packed sequentially, column-by-column, so that _a_p(1) contains _A(1,1), _a_p(2) contains _A(2,1), _a_p(3) contains _A(3,1), and so on. On exit, the lower triangular part of the updated matrix overwrites array _a_p. NNNNOOOOTTTTEEEESSSS SSSSSSSSPPPPRRRR/DDDDSSSSPPPPRRRR is a Level 2 Basic Linear Algebra Subprogram (Level 2 BLAS). CCCCSSSSPPPPRRRR/ZZZZSSSSPPPPRRRR is an extension to Level 2 BLAS. When working backward (_i_n_c_x < 0), each routine starts at the end of the vector and moves backward, as follows: _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)), ..., _x(1) PPPPaaaaggggeeee 3333 SSSSSSSSPPPPRRRR((((3333SSSS)))) SSSSSSSSPPPPRRRR((((3333SSSS)))) DDDDaaaattttaaaa TTTTyyyyppppeeeessss The following data types are described in this documentation: TTTTeeeerrrrmmmm UUUUsssseeeedddd DDDDaaaattttaaaa ttttyyyyppppeeee Fortran: Array dimensioned _n xxxx((((nnnn)))) Character CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR Integer IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision RRRREEEEAAAALLLL Double precision DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN Single precision complex CCCCOOOOMMMMPPPPLLLLEEEEXXXX Double precision complex DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX C/C++: Array dimensioned _n xxxx[[[[_n]]]] Character cccchhhhaaaarrrr Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ssssccccssssllll____ccccoooommmmpppplllleeeexxxx Double precision complex ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx C++ STL: Array dimensioned _n xxxx[[[[_n]]]] Character cccchhhhaaaarrrr Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> PPPPaaaaggggeeee 4444 SSSSSSSSPPPPRRRR((((3333SSSS)))) SSSSSSSSPPPPRRRR((((3333SSSS)))) Double precision complex ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> Note that you can explicitly declare multidimensional C/C++ arrays provided that the array dimensions are swapped with respect to the Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran). To avoid a compiler type mismatch error in C++ (or a compiler warning message in C), however, the array should be cast to a pointer of the appropriate type when passed as an argument to a SCSL routine. SSSSEEEEEEEE AAAALLLLSSSSOOOO IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222(3S), CCCCHHHHPPPPRRRR(3S) IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum. PPPPaaaaggggeeee 5555